﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Windows.Forms;
using UricaoWeb.LogicaDeNegocios.Reportes_Graficos___Housekeeping___Limpieza;

namespace UricaoWeb.Presentacion
{
    public partial class API_reportes_RestaurantesDeMayorConsumo : API_Seguridad_Principal
    {
        private ReportesLogica _reportesLog = new ReportesLogica();

        ///<sumary>
        ///Metodo que se encarga de cargar la pagina
        ///Parámetros:
        ///Object sender: objeto obtenido 
        ///EventArgs e:  evento de la ventana 
        ///</sumary>
        protected void Page_Load(object sender, EventArgs e)
        {
            var master = Master as MasterPage;
            if (master != null)
            {
                master.actualizar_label();
            }
            base.validar_usuario();

        }

        ///<sumary>
        ///Metodo que valida la informacion del reporte de restaurantes de mayor consumo,
        ///cuando se da click al boton continuar 
        ///Parámetros:
        ///Object sender: objeto obtenido 
        ///EventArgs e:  evento de la ventana
        ///</sumary>
        protected void Consultar_Click(object sender, EventArgs e)
        {
           if (_reportesLog.ValidacionesGrafico(fechInicio.Value, fechaFin.Value, mensajeDeError))
           {
               ReportesLogica.LimpiarVariableError();
               List<DatoReporte> data = _reportesLog.GraficoDeTorta("reportesRestaurantesDeMayorConsumo", fechInicio.Value, fechaFin.Value, mensajeDeError);
              
               int _resultadoValidarGrafico = _reportesLog.ValidacionDataTorta(data, mensajeDeError);

               if (_resultadoValidarGrafico == 1)
               {
                   IEnumerable<DatoReporte> listaData = data;
                   List<string> valoresX = new List<string>();
                   List<int> valoresY = new List<int>();
                   for (int i = 0; i < data.Count; i++)
                   {
                       valoresX.Add(data[i].Dato);
                       valoresY.Add(data[i].Cantidad);
                   }
                   _grafico.Series[0].Points.DataBindXY(valoresX, valoresY);
                   _grafico.Visible = true;
               }
               else if (_resultadoValidarGrafico == -1)
               {
                   mensajesAlUsuario();
               }
           }
        }

        ///<sumary>
        ///Metodo que se encarga del mensaje de alerta para el usuario  
        ///</sumary>
        private void mensajesAlUsuario()
        {
            ScriptManager.RegisterStartupScript(this, this.GetType(), "script", "alert('" + ReportesLogica._mensaje + "');", true);
        }


    }
}
